体验 Apex.sh

Apex.sh?
作为 TJ 的首个创业项目,Apex Ping在一些硬核的人眼里,或者从更深层次的技术角度上讲,可能有时会觉得有些失望,但是从美学和 UI 方面来谈,也许能让人眼前一亮。

从 16 年 4 月 23 日在 Medium 上发声说「我要成立自己的公司啦:Apex Software」到 6 月 17 日正式宣布并上线第一个 APM 模块 Apex Ping,我也在 Medium 和 Twitter 上时刻跟踪动态。并且在第一时间试用了一下 Apex Ping,总体来说体验可以,前端方面使用 React + D3 做数据可视化,后端则是使用 AWS 的 Lambda,并且他们也开源了一些工具

当然,以 TJ 的水准,UI 上保持优雅的作风,自然不用多说。

Time Status 很有意思,包括:

  • DNS 解析时间 (NAME LOOKUP)
  • 连接建立时间 (CONNECT)
  • TLS 握手时间 (TLS HANDSHAKE)
  • TTFB (FIRST BYTE)
  • 响应时间(RESPONSE)
  • 重定向时间REDIRECTS

看的出来,思路大致类似。
之前简单实现了下,封装成 API。相比于命令行,网页版自然要好用得多,配合前端数据可视化对于经常要分析性能的人会非常方便。思路则是调 CURL 命令然后解析一下结果,处理一下数据,这里用的是 PHP。

CURL 的几个关键参数和输出倒是比较有意思,各种时间一目了然:

  • "time_namelookup"
  • "time_connect"
  • "time_appconnect"
  • "time_pretransfer"
  • "time_redirect"
  • "time_starttransfer"
  • "time_total"
  • "speed_download"
  • "speed_upload"

相关计算方式如下:

1
2
3
4
5
6
7
8
//TCP 连接时间
'range_connection' = 'time_connect' -'time_namelookup'
//TLS 握手时间
'range_ssl' = 'time_pretransfer' - 'time_connect'
//服务器响应时间
'range_server' = 'time_starttransfer' - 'time_pretransfer'
//传输时间
'range_transfer'='time_total' - 'time_starttransfer'

最终 API 结果:

此处输入图片的描述

当然,这里也推荐另一款工具 Python 版的 httpStat 工具:

此处输入图片的描述

全程命令行,还不错,很好用。

无「民事行为能力」人慎点